package tcpCon

import (
	"beego_base_demo/HandleMessage"
	"beego_base_demo/tool"
	"fmt"
	"net"
)

func Read(conn net.Conn) {
	buf :=make([]byte,4)
	n,err:=conn.Read(buf)
	if err != nil {
		fmt.Println(err)
		return
	}
	if n!=4{
		fmt.Println("n=",n)
		err := conn.Close()
		if err != nil {
			return 
		}
		return
	}
	len:=tool.ReadLen(buf)
	readBoby(conn,len)
}
func readBoby(conn net.Conn,len int)  {
	buf:=make([]byte,len+5)
	n,err:=conn.Read(buf)
	if err != nil {
		fmt.Println(err)
		return
	}
	if n!=len{
		fmt.Println("n=",n)
		return
	}

	//开个协程去处理 这个协程继续读取
	go HandleMessage.HandleMessage(conn,buf)
	Read(conn)
}
func Write(conn net.Conn,data []byte)  {
	_, err := conn.Write(data)
	if err != nil {
		return
	}
	//回应在处理消息之前就有等待了 就不管了
}